home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 28
/
Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso
/
Aminet
/
comm
/
misc
/
Oma1.16.lha
/
Oma1.16
/
OMA
< prev
next >
Wrap
Text File
|
1998-10-17
|
10KB
|
474 lines
/* $VER: OMA 1.16 (14 Oct 1998)
diverse Berechnungen des OnlineMeterLogFile
*/
IF EXISTS("LIBS:rexxsupport.library")~=1 THEN DO
SAY "Kann die <rexxsupport.library> nicht öffnen !"
EXIT(10)
END
IF EXISTS("LIBS:rexxreqtools.library")~=1 THEN DO
SAY "Kann die <rexxreqtools.library> nicht öffnen !"
EXIT(10)
END
IF EXISTS("LIBS:rexxtricks.library")~=1 THEN DO
SAY "Kann die <rexxtricks.library> nicht öffnen!"
EXIT(10)
END
IF EXISTS("ENVARC:Online/Online.prefs")~=1 THEN DO
SAY "Kann Online.log nicht finden !"
SAY "Ist OnlineMeter installiert ?"
EXIT(10)
END
ADDLIB("rexxsupport.library",10,-30,0)
ADDLIB("rexxreqtools.library",11,-30,0)
ADDLIB("rexxtricks.library",9,-30,0)
nl = "0a"x
fontname = GETTOOLTYPEVALUE(OMA,FONTNAME)
IF rc = 10 THEN rtfont = "RT_FONT=topaz.font/8"
ELSE CALL FontInit
graph = GETTOOLTYPEVALUE(OMA,BARGRAPH)
IF graph = 1 THEN IF EXISTS("LIBS:rexxarplib.library")~=1 THEN DO
RTEZREQUEST(" Kann die <rexxarplib.library> nicht öffnen !" nl nl,
" > Schalte Bargraphanzeige aus. <"nl nl,
"--------------------------------------------" nl,
"Abhilfe: Library besorgen" nl,
"oder BARGRAPH-ToolType auf 0 stellen",,"Fehler")
graph = 0
END
ELSE ADDLIB("rexxarplib.library",10,-30,0)
OPEN(Datei,"ENVARC:Online/Online.prefs",READ)
READCH(Datei,55)
string = READLN(Datei)
logfile = COMPRESS(string,xrange("00"x,"1f"x))
CLOSE(Datei)
rtpos = "RT_REQPOS=REQPOS_CENTERSCR"
gesamt = 0
READFILE(logfile,zeile)
anfang = WORD(zeile.1,2)
eintrage = zeile.0
ende = WORD(zeile.eintrage,2)
barinit = TRUNC(zeile.0 / 40)
/* HauptMenu Auswahlmöglichkeiten */
Hauptmenu:
DO FOREVER
auswahl = RTEZREQUEST(" Berechnung und Auswertung vom OnlineMeterLogfile"nl,
"------------------------------------------------"nl,
"Logfile : "logfile nl,
"Zeitraum : "anfang" bis "ende nl,
"Einträge : "zeile.0,"Statistik|Monat|Zeitraum|Beenden","Version1.16 (14-Oct-98) Copyright by Uwe Bleck",rtpos rtfont)
IF auswahl = 0 THEN EXIT
IF auswahl = 1 THEN CALL Statistik
IF auswahl = 2 THEN CALL Monat
IF auswahl = 3 THEN CALL Zeitraum
END
/* Monat */
Monat:
bar = ""
barwert = barinit
summe = 0 ; h = 0 ; m = 0 ; s = 0 ; anz = 0 ;
ausgabe1 = " Monat Gebühren Zeit Verbindungen"
ausgabe2 = ""
index = SUBSTR(anfang,4,6)
DO i = 1 to zeile.0
IF barwert = i & graph > 0 THEN CALL BarGraph
IF index ~= SUBSTR(WORD(zeile.i,2),4,6) THEN CALL Liste
h = h + VALUE(SUBSTR(WORD(zeile.i,4),1,2))
m = m + VALUE(SUBSTR(WORD(zeile.i,4),4,2))
s = s + VALUE(SUBSTR(WORD(zeile.i,4),7,2))
preis = WORD(zeile.i,5)
summe = summe + preis
anz = anz + 1
END
CALL Liste
IF graph = 1 THEN POSTMSG()
RTEZREQUEST(ausgabe1,
ausgabe2,"Ok","Monat",rtpos rtfont)
RETURN
Liste:
s1 = TRUNC(s/60)
m = m + s1
sec = s -(s1 * 60)
m1 = TRUNC(m / 60)
h = h + m1
min = m - (m1 * 60)
CALL Formatierung
ausgabe2 = ausgabe2 nl index" "list1" DM "list2":"list3":"list4" "list5
index = SUBSTR(WORD(zeile.i,2),4,6)
summe = 0 ; h = 0 ; m = 0 ; s = 0 ; anz = 0
RETURN
/* Zeitraum */
Zeitraum:
bar = ""
barwert = barinit
summe = 0 ; h = 0 ; m = 0 ; s = 0 ; anz = 0
anfangsdatum = RTGETSTRING(,"StartDatum eingeben im Format"nl,
" T.M.JJ oder TT.MM.JJ"nl,
" (Enter für "anfang")","Anfangsdatum","Enter",rtpos rtfont)
enddatum = RTGETSTRING(,"EndDatum eingeben im Format"nl,
" T.M.JJ oder TT.MM.JJ"nl,
" (Enter für "ende")","Enddatum","Enter",rtpos rtfont)
IF LENGTH(anfangsdatum) = 0 THEN anfangsdatum = anfang
IF LENGTH(enddatum) = 0 THEN enddatum = ende
Ausgabe1 = "Zeitraum von "anfangsdatum" bis "enddatum
datum = anfangsdatum
CALL DatumsWandlung
index1 = datum
datum = enddatum
CALL DatumsWandlung
index2 = datum
DO i = 1 to zeile.0
IF barwert = i & graph > 0 THEN CALL BarGraph
datum = WORD(zeile.i,2)
CALL DatumsWandlung1
IF datum >= index1 THEN BREAK
END
DO n = i to zeile.0
IF barwert = n & graph > 0 THEN CALL BarGraph
datum = WORD(zeile.n,2)
CALL DatumsWandlung1
IF datum > index2 THEN BREAK
h = h + SUBSTR(WORD(zeile.n,4),1,2)
m = m + SUBSTR(WORD(zeile.n,4),4,2)
s = s + SUBSTR(WORD(zeile.n,4),7,2)
summe = summe + WORD(zeile.n,5)
anz = anz + 1
END
IF graph = 1 THEN POSTMSG()
s1 = TRUNC(s / 60)
m = m + s1
sec = s - (s1 * 60)
m1 = TRUNC(m / 60)
h = h + m1
min = m - (m1 * 60)
list1 = summe
list2 = h
IF min < 10 THEN list3 = INSERT("0",min)
ELSE list3 = min
IF sec < 10 THEN list4 = INSERT("0",sec)
ELSE list4 = sec
list5 = anz
ausgabe2 = "Gebühren : "list1" DM"
ausgabe3 = "Zeit : "list2" h "list3" min "list4" sec"
ausgabe4 = "Verbindungen : "list5
CLOSE(Log)
RTEZREQUEST(ausgabe1 nl,
nl,
ausgabe2 nl,
ausgabe3 nl,
ausgabe4,"Ok","Zeitraum",rtpos rtfont)
RETURN
/* Statistik */
Statistik:
TIME(R)
summe = 0 ; anz = 0
teuer = 0 ; billig = 999
oft = 0 ; selten = 99
effekt = 0
h = 0 ; m = 0 ; s = 0
hzeit = 0 ; Nzeit = 9999
gessumme = 0
index = anfang
bar = ""
barwert = barinit
DO i = 1 to zeile.0
IF barwert = i & graph > 0 THEN CALL BarGraph
IF index ~= WORD(zeile.i,2) THEN CALL Auswert
tetag = WORD(zeile.i,2)
h = h + SUBSTR(WORD(zeile.i,4),1,2)
m = m + SUBSTR(WORD(zeile.i,4),4,2)
s = s + SUBSTR(WORD(zeile.i,4),7,2)
preis = WORD(zeile.i,5)
summe = summe + preis
anz = anz + 1
IF i = zeile.0 THEN CALL Auswert
END
summe = gessumme
CALL Formatierung
ausgabe5 = "Gesamtsumme : "list1" DM"
summe = TRUNC(gessumme / effekt,2)
CALL Formatierung
ausgabe1 = "Tage (effektiv) : "effekt
ausgabe9 = "Ø pro Tag : "list1" DM"
summe = TRUNC(gessumme / eintrage,2)
CALL Formatierung
ausgabe10 = "Ø pro Verbindung : "list1" DM"
SELECT
WHEN LENGTH(graph) = 0 THEN barinfo = "ausgeschaltet"
WHEN graph = 0 THEN barinfo = "ausgeschaltet"
WHEN graph = 1 THEN barinfo = "eingeschaltet"
END
IF graph = 1 THEN POSTMSG()
time=TIME(e)
RTEZREQUEST(" Größe des Logfiles : "WORD(STATEF(logfile),2)" Bytes" nl,
"Zeitraum : "anfang" bis "ende nl,
"Verbindungen : "eintrage nl,
ausgabe1 nl,
ausgabe5 nl,
ausgabe9 nl,
ausgabe10 nl,
"------------------------------------------------" nl,
"der letzte Tag mit..." nl nl,
ausgabe2 nl,
ausgabe6 nl nl,
ausgabe3 nl,
ausgabe7 nl nl,
ausgabe4 nl,
ausgabe8 nl,
"------------------------------------------------" nl,
"FONT :" SUBSTR(rtfont,9) nl,
"BARGRAPH :" barinfo nl,
"Dauer der Berechnung :" time "Sekunden","Ok","Statistik von "logfile,rtpos rtfont)
RETURN
Teuertag:
CALL Formatierung
ausgabe2 = "höchstem Entgeld : "tetag" - "list1" DM"
teuer = summe
RETURN
Billigtag:
CALL Formatierung
ausgabe6 = "niedrigstem Entgeld : "tetag" - "list1" DM"
billig = summe
RETURN
Haufig:
CALL Formatierung
ausgabe3 = "meisten Verbindungen : "tetag" - "list5
oft = anz
RETURN
Selten:
CALL Formatierung
ausgabe7 = "wenigsten Verbindungen : "tetag" - "list5
selten = anz
RETURN
Zeit:
s1 = TRUNC(s / 60)
m = m + s1
sec = s - (s1 * 60)
m1 = TRUNC(m / 60)
h = h + m1
min = m - (m1 * 60)
CALL Formatierung
ausgabe4 = "längster Verbindung : "tetag" - "list2":"list3":"list4
hzeit = zeit
RETURN
nZeit:
s1 = TRUNC(s / 60)
m = m + s1
sec = s - (s1 * 60)
m1 = TRUNC(m / 60)
h = h + m1
min = m - (m1 * 60)
CALL Formatierung
ausgabe8 = "kürzester Verbindung : "tetag" - "list2":"list3":"list4
nzeit = zeit
RETURN
Auswert:
zeit = (h * 60 * 60) + (m * 60) + s
IF zeit >= hzeit THEN CALL Zeit
IF summe >= teuer THEN CALL Teuertag
IF anz >= oft THEN CALL Haufig
IF zeit <= nzeit THEN CALL nZeit
IF summe <= billig THEN CALL Billigtag
IF anz <= selten THEN CALL Selten
gessumme = gessumme + summe
summe = 0 ; anz = 0 ; zeit = 0 ; h = 0 ; m = 0 ; s = 0
index = WORD(zeile.i,2)
effekt = effek